package JavaCodePublicClass.远程控制;

import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;

/**
 *
 *<a herf="http://www.baidu.com">JavaCodePublicClass.远程控制 ！<a/>
 */
//Javadoc   类方法统一使用Javadoc注释   不允许//和/*  */
public class 远程控制 {
    public static void main(String []args){
        //主函数
        //    System.out.println("hello");
        //思路   思想
        //询问
        //看到纯大写底层的就是一个常量
        int choice=JOptionPane.showConfirmDialog(null,"请求控制您的电脑", "JavaCodePublicClass/本地监控",JOptionPane.YES_NO_OPTION);
        if(choice==JOptionPane.YES_OPTION){
            System.out.println("谢谢配合！");
        }else {
            return;
        }
        //    想要连接别人的电脑   需要ip地址和端口号
        //    请输入IP地址和端口号
        JOptionPane.showInputDialog("请输入IP地址和端口号","127.168.1.1");
        //    初始化窗口
        JFrame jFrame=new JFrame("JavaCodePublicClass/本地监控");
        //    设置窗口大小
        jFrame.setSize(600,550);
        //    设置窗口剧中     相对于我的电脑
        jFrame.setLocationRelativeTo(null);
        //    窗口置顶
        jFrame.setAlwaysOnTop(true);//
        //    点击推出后就  不会运行了     要不然就会一直运行着的
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //jFrame这个类调用了这个方法   有一个参数 3    传入进去了
        //    设置窗口可见
        jFrame.setVisible(true);
        //截图操作    获取权限
        Toolkit tk=Toolkit.getDefaultToolkit();
        //获取屏幕的大小
        Dimension dimension=tk.getScreenSize();
        //    System.out.println(dimension);
        //获取高度和宽度
        double dimensionWidth=dimension.getWidth();
        double dimensionHeight=dimension.getHeight();
        //  创建一个小面板
        JLabel jLabel=new JLabel();
        jFrame.add(jLabel);

        //    创建一个机器人帮我们截图
        //    异常机制 不正常的事件     编译时异常  和运行时异常
        //    运行时异常：在调用这个方法的时候就沾染上了这个---throw AWTException
        //    运行时异常   底层判断   当条件不满足的时候 抛出异常；
        //    File file=new File();
        //    创建一个机器人帮我们截图
        try{
            Robot robot=new Robot();
            //        创建while死循环  截图就是视频了
            while(true){
                //        指定坐标
                Rectangle rectangle= new Rectangle(jFrame.getWidth(),0,(int)dimensionWidth-jFrame.getWidth(),(int)dimensionHeight);
                //      获取坐标屏幕
                BufferedImage bf=robot.createScreenCapture(rectangle);
                //   截取图片    ImageIO.write(bf,"png",new File(" C:\\Users\\Administrator\\Desktop\\imageIo\\1.jpg"));
                jLabel.setIcon(new ImageIcon(bf));
            }
        }catch (AWTException e){
            e.printStackTrace();
        }
    }
}
/**
 * 客户端     发起请求      截取图片 展示图片
 *     图像压缩  socket 编程  http 7 层
 * 服务器   处理请求    获取服务器的分辨率  截图  传输给客户端
 */